package com.sun.sync;

/**
 * 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时，一个时间内只能有一个线程得到执行。
 * 另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
 * @author Sun AFei
 * @date 2018年1月21日
 */
public class SynchronizedThread {
	public static void main(String[] args) {
		Sync sync = new Sync();
		new Thread(sync).start();
		new Thread(sync).start();
	}
	
	static class Sync implements Runnable{

		public void run() {
			synchronized (this) {
				try {
					System.out.println(Thread.currentThread().getName() + "线程单独占用5秒钟");
					Thread.sleep(5000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
}

